# 1. 自动升级模块（新增核心功能）
import requests
import sys
import os
import subprocess

# 适配你的Gitee仓库地址（无需修改）
REMOTE_VERSION_URL = "https://gitee.com/heyou12345/auto_defense_ai/raw/main/version.txt"
REMOTE_CODE_URL = "https://gitee.com/heyou12345/auto_defense_ai/raw/main/auto_defense_system_full.py"

def check_and_update():
    """检测远程版本并自动更新"""
    try:
        # 获取远程版本号
        remote_version = requests.get(REMOTE_VERSION_URL, timeout=5).text.strip()
        # 获取本地版本号（无则默认0.0.0）
        local_version = open("version.txt", "r").read().strip() if os.path.exists("version.txt") else "0.0.0"
        
        # 版本号对比（数字越大版本越新）
        if remote_version > local_version:
            print(f"发现新版本 {remote_version}，正在更新...")
            # 下载新代码并覆盖本地文件
            new_code = requests.get(REMOTE_CODE_URL, timeout=10).content
            with open("auto_defense_system_full.py", "wb") as f:
                f.write(new_code)
            # 更新本地版本文件
            with open("version.txt", "w") as f:
                f.write(remote_version)
            print("更新完成，重启程序中...")
            # 重启程序以加载新代码
            subprocess.Popen([sys.executable, "auto_defense_system_full.py"])
            sys.exit()  # 退出旧版本进程
        else:
            print(f"当前已是最新版本 {local_version}")
    except Exception as e:
        print(f"升级检测异常：{str(e)}")

# 2. 基础安全防护AI功能（保留核心逻辑，可根据需求修改）
def security_defense_ai():
    """安全防护AI主功能"""
    print("\n=== 安全防护AI启动 ===")
    # 示例功能1：异常行为检测
    def detect_abnormal_behavior():
        print("正在检测异常访问行为...")
        # 实际场景可替换为日志分析、流量监控等逻辑
        abnormal_signs = ["高频重复请求", "陌生IP访问"]
        for sign in abnormal_signs:
            print(f"⚠️  检测到潜在风险：{sign}")
    
    # 示例功能2：防护规则执行
    def execute_defense_rules():
        print("\n执行防护规则...")
        rules = ["拦截陌生IP", "限制高频请求频率", "记录风险日志"]
        for rule in rules:
            print(f"✅ 已执行：{rule}")
    
    # 调用功能模块
    detect_abnormal_behavior()
    execute_defense_rules()
    print("\n=== 安全防护任务完成 ===")

# 3. 程序入口（先检测更新，再启动核心功能）
if __name__ == "__main__":
    check_and_update()  # 优先执行升级检测
    security_defense_ai()  # 升级完成/无需升级时，启动防护功能